package aiku.numericalcontroloa.Service;

import aiku.numericalcontroloa.Base.Utils.Result;
import aiku.numericalcontroloa.Model.Dto.PageSelect;
import aiku.numericalcontroloa.Model.Dto.SysUserDto;
import aiku.numericalcontroloa.Model.Dto.UserDto;
import aiku.numericalcontroloa.Model.Dto.WxLoginDto;
import aiku.numericalcontroloa.Model.Entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import org.json.JSONException;

import java.io.IOException;

/**
 * @Author 黄广庭
 * @Date 2024/1/6 17:27
 */
public interface UserService extends IService<User> {
    Result login(UserDto userDto);

    Result addUser(UserDto userDto);

    Result updateUser(UserDto userDto);

    Result deleteUser(UserDto userDto);

    Result getUserList(PageSelect pageSelect);

    Result getUser(String id);

    Result verifyPassword(UserDto userDto);

    Result changePassword(UserDto userDto);

    Result resetPassword(UserDto userDto);

    Result wxLogin(WxLoginDto wxLoginDto) throws IOException, JSONException;

    Result bindWx(WxLoginDto wxLoginDto) throws IOException, JSONException ;

    User isAdmin(String id);

    Result adminAddUser(SysUserDto sysUserDto);

    Result adminGetUser();

    Result adminGetSalesman();

    Result fuzzyQuery(UserDto userDto);

    Result getUserWithDelete(String id);

}
